package com.example.check.service;

import com.example.check.pojo.User;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 根据ID查询用户
     */
    User getById(Integer id);
    
    /**
     * 根据用户名查询用户
     */
    User getByUsername(String username);
    
    /**
     * 根据手机号查询用户
     */
    User getByPhone(String phone);
    
    /**
     * 根据邮箱查询用户
     */
    User getByEmail(String email);
    
    /**
     * 用户登录
     */
    User login(String username, String password);
    
    /**
     * 用户注册
     */
    boolean register(User user);
    
    /**
     * 更新用户信息
     */
    boolean update(User user);
    
    /**
     * 删除用户
     */
    boolean deleteById(Integer id);
    
    /**
     * 分页查询用户
     */
    PageInfo<User> getPage(int pageNum, int pageSize);
    
    /**
     * 查询所有用户
     */
    List<User> getAll();
    
    /**
     * 验证用户名是否存在
     */
    boolean isUsernameExists(String username);
    
    /**
     * 验证手机号是否存在
     */
    boolean isPhoneExists(String phone);
    
    /**
     * 验证邮箱是否存在
     */
    boolean isEmailExists(String email);
}
